With the explosion of personal computer (PC) systems, there has been an attendant explosion in disk drives. Personal computer systems often have one or more disk drives for storing software program codes and data. These disk drives typically store information as a series of digital bits. A magnetic transducer or "head" writes each bit of information onto a circular, spinning magnetic media. The stored information can later be retrieved by using the same head to read back the bits of information from the magnetic media. One popular storage media, known as "floppy" disks, are comprised of flexible magnetic media which are enclosed in plastic jackets for protection. These floppy disks are removable from the disk drives and are interchangeable. Floppy disks for PCs commonly come in two sizes, 5.25 and 3.5 inches in diameter. Typically, a single semiconductor chip known as a disk drive controller, is installed within the personal computer to provide control over various functions and to interface with the disk drive(s). Some examples of floppy disk drive controllers include the National Semiconductor PC8477, NEC UPD72064, Motorola 3221, and Intel 82077.
Because of the popularity of disk drives, there are an ever increasing number of disk drive types being built by a number of different manufacturers. Each disk drive type can have its own protocol. A further complication is the fact that each of the manufacturers can specify their own interface and signal requirements. As a result, the particular disk drive controller in a PC might be incompatible with certain types of disk drives made by certain manufacturers. Under such circumstances, the installation of disk drives is limited to those disk drives which the designers of the disk drive controllers have chosen to support. Thus, one major disadvantage with typical prior art disk drive controllers is that the installers of disk drives, such as manufacturers of personal computer systems, might be limited by the disk drive controller to certain types or brands of disk drives. Those disk drives which are compatible are not guaranteed to be the ones that offer the best features or which are the most economical.
Another associated problem is that disk drive controller manufacturers are faced with a dilemma in determining which disk drives to support. If they choose to support only one type of disk drive, they forfeit that share of the disk drive controller market for those disk drives which are incompatible. On the other hand, if the manufacturer chooses to market more than one type of controller to support a greater variety of drives, the manufacturer is faced with increased costs due to designing, stocking, and marketing a plurality of different controllers. Hence, it would be highly advantageous for a disk drive controller to be compatible with many different types of disk drives.
One prior art approach for increasing drive compatibility was to implement external jumpers, DIP switches, external logic or other types of hardware. However, these mechanisms do not allow a system designer to affect any internal operations of the floppy disk controller. Furthermore, such changes need to be separately controlled, at each access of the different drives that may be connected to the controller. This a cumbersome, labor intensive, and time consuming task. Moreover, this approach requires that the application be aware of the exact types of disk drives attached to the computer system along with their peculiarities.
A different prior art approach for increasing drive compatibility was to add separate, dedicated output pins on the disk drive controller for supporting different drives. However, increasing the pin count correspondingly increases the overall cost of the disk drive controller. In addition, there is a physical limitation on the number of pins which can be added and yet have the disk drive controller fit onto the computer's motherboard.
Thus, what is needed is a configurable disk drive controller which allows a system designer more flexibility in selecting the type and brand of disk drive to be installed. It would also be highly preferable if the type of drive used is transparent to the application software.